首页
\
问答
\
在可以访问状态控件的ASP.net页面生命周期中?(In ASP.net Page life cycle on which state Controls is accessible?)
在可以访问状态控件的ASP.net页面生命周期中?(In ASP.net Page life cycle on which state Controls is accessible?)
在ASP.net页面生命周期中,哪些状态是可访问的控件? 据我说它是在Initialize之后,这是正确的吗?
In an ASP.net page life cycle, on which state are controls accessible? According to me it is after Initialize, is that correct?
原文:https://stackoverflow.com/questions/7324429
更新时间:2023-02-21 13:02
最满意答案
存储在指针
ptr
值为NULL
或0
。但是,
ptr
是一个变量。 它存储在某个内存位置。 因此,如果您使用&ptr
您将获得存储ptr
的内存位置。The value stored in the pointer
ptr
isNULL
or0
.However,
ptr
is a variable. It is stored in some memory location. So if you take&ptr
you will get the memory location thatptr
is stored in.
相关问答
更多-
%x将指针强制转换为无符号整数(32位长度)。 在64位机器上,指针的长度为8字节(64位)。 使用%p打印时会打印整个指针,其大小为64位。 但是当使用%x打印时,只打印低32位。 因此,使用%p打印指针总是安全的。 您可以添加额外的2行,如下所示,并验证: printf("size of unsigned int is %lu\n", sizeof(unsigned int)); printf("size of pointer is %lu\n", sizeof(int *)); 在具有64位操作系统 ...
-
编译器只需要保证变量只要使用它就会持续。 int a = 5; int b = 7; printf( "a * 5 = %d\n", a * 5); /* after this point, a is no longer needed */ printf( "b * 9 = %d\n", b * 9); /* after this point, b is no longer needed */ 因此编译器可以推迟b初始化,直到完成后,并且只使用一个内存位置。 同样在这个例子中,它可能将常量25和63推入堆 ...
-
这是一个详细的解释,我希望会有所帮助。 让我们从您的程序开始,因为它是最简单的解释。 int main() { char *p = "Hello"; while(*p++) printf("%c",*p); return 0; } 第一个声明: char* p = "Hello"; 声明p作为指向char的指针。 当我们说“指向一个char ”时,这是什么意思? 这意味着p的值是char的地址; p告诉我们在内存中有一些空间留在一个char 。 该语句还初始化p以 ...
-
q的值是未初始化的垃圾,因为您从不为其指定值。 每次运行程序时,您都可以获得相同的p地址,这并不奇怪。 该地址几乎肯定是一个虚拟地址,所以它只适用于当前正在运行的程序(进程)的内存空间。 从一个程序看到的虚拟地址0x60aa00000800和从另一程序看到的虚拟地址0x60aa00000800是不同的物理地址。 操作系统将虚拟地址映射到物理地址,反之亦然,所以不存在冲突。 (如果不同的程序可以读写相同的物理内存,这将是一个安全噩梦。) 如果它们每次都不一样,也不会感到意外。 例如,一些操作系统随机化堆栈地址 ...
-
NULL指针的地址(Address of NULL pointer)[2022-03-08]
指针变量是可以指向另一个对象的对象 。 这里int *ptr = NULL; 将ptr声明为指针对象,可能指向int的对象。 最初存储到对象中的值为NULL (它初始化为NULL ,因此ptr不指向任何对象)。 现在, ptr也存在于内存中。 它需要足够的字节来包含指向对象的地址。 所以它也需要有一个地址。 因此 ptr计算为ptr指向的对象的地址。 &ptr计算ptr对象本身在内存中的位置 *ptr计算ptr指向的对象的值 ,如果它指向一个对象。 如果它未指向对象,则行为未定义。 另外, %p需要一个vo ... -
Objective-C中的'ptr = nil'vs'[ptr release]'?('ptr = nil' vs '[ptr release]' in Objective-C?)[2022-02-04]
这可能是一个问题,缺乏对Cocoa的内存管理规则的理解,特别是与对象所有权有关。 根据您创建对象的方式,您拥有它或其他东西。 是否需要释放对象取决于您是否拥有该对象(您要么保留它,要么使用以alloc , new , copy或mutableCopy开头的方法创建它)。 您可以在Apple的内存管理文档中详细了解有关规则的详细信息。 此外,您应该注意有关属性的任何规则。 正如塞尔吉奥所提到的,如果一个属性指定它保留一个对象,它将处理在赋值时retain和release调用。 因此,例如,如果使用alloc分 ... -
if(!ptr)VS if(ptr == NULL)in C [duplicate](if (!ptr) VS if (ptr == NULL) in C [duplicate])[2022-03-23]
在C中,它只是一种编码风格偏好。 有些人更喜欢if (NULL == ptr) ,如果程序员犯了一个拼写错误(并且错误输入==作为单个 = ),编译器会抱怨。 但是,许多编译器会发出if (ptr=NULL)的警告(至少是最近的GCC ,当你应该调用gcc -Wall -Wextra )。 在C ++中(你将使用nullptr而不是NULL )可能会有区别,因为可以重新定义operator ! (例如,在智能指针上)。 但是,在原始普通指针(如void* ,或sometype*或SomeClass* )上, ... -
存储在指针ptr值为NULL或0 。 但是, ptr是一个变量。 它存储在某个内存位置。 因此,如果您使用&ptr您将获得存储ptr的内存位置。 The value stored in the pointer ptr is NULL or 0. However, ptr is a variable. It is stored in some memory location. So if you take &ptr you will get the memory location that ptr is st ...
-
请告诉我这背后的技术原因。 技术原因是,在添加一个时,编译器会尝试跳转到该类型的下一个实例。 示例:向int指针添加一个将增加4,因为int长度为4个字节,然后指向下一个int。 在您的示例中,使用ptr,您从未指定大小。 跳转到下一个元素是不可能的,因为这个元素的大小是未知的。 一旦你通过指向一个正好包含5个元素的数组来指定大小,它就会再次起作用。 当将ptr转换为void时,再次转向下一个元素变得容易了。 编译器只添加了一个字节。 在你的运行中: ptr是0023FF24 ((void*)ptr) + ...
-
2D数组和指针指针是不同的动物! 二维数组,例如int arr[N][M] ,是一个N * M个连续元素的数组,具有以下关系: &arr[i][j] == &arr[0][0] + i * M + j 。 指针指针是指向指针数组的指针,每个指针指向另一个数组。 所以,你可以做什么? 将数组作为具有显式索引的一维数组进行处理 int main() { int a[2][2]={{5,7}, {0,1}}; int* ptr=a[0]; // a[0] decays to ...