相关疑难解决方法(0)

什么是阵列衰减?

什么是阵列的衰变?与数组指针有关系吗?

c c++ arrays pointers

358
推荐指数
8
解决办法
5万
查看次数

数组名称是指针吗?

数组的名称是C中的指针吗?如果没有,数组的名称和指针变量之间有什么区别?

c arrays pointers

191
推荐指数
4
解决办法
6万
查看次数

初始化指针时的字符串文字与char数组

灵感来自这个问题.

我们可以char用字符串文字初始化指针:

char *p = "ab";
Run Code Online (Sandbox Code Playgroud)

它完全没问题.人们可以认为它等同于以下内容:

char *p = {'a', 'b', '\0'};
Run Code Online (Sandbox Code Playgroud)

但显然事实并非如此.而且不仅因为字符串文字存储在只读内存中,而且即使通过字符串文字具有一种类型的char数组,并且初始化程序{...}具有char数组类型,两个声明的处理方式也不同,因为编译器是发出警告:

警告:标量初始化程序中的多余元素

在第二种情况下.这种行为的解释是什么?

更新:

此外,在后一种情况下,指针p将具有0x61(第一个数组元素的值'a')而不是存储器位置的值,使得编辑器在警告时仅采用初始化器的第一个元素并将其分配给p.

c arrays gcc

19
推荐指数
4
解决办法
5147
查看次数

C中指针和全局变量的位置

哪里指针全局变量保存在C ^?它们是保存在内存,堆还是堆栈中?

c memory-management

13
推荐指数
3
解决办法
2万
查看次数

C样式字符串,指针,数组

我无法理解C风格的字符串是什么.新年快乐

我所知道的:指针包含一个内存地址.取消引用指针将为您提供该内存位置的数据.

int x = 50;
int* ptr = &x;    //pointer to an integer, holds memory address of x

cout << "&x: " << &x << endl;  //these two lines give the same output as expected
cout << "ptr: " << ptr << endl;

cout << "*ptr: " << dec << (*ptr) << endl;  //prints out decimal number 50
                                           //added dec, so the program doesnt 
                //continue to printout hexidecimal numbers like it did for the 
                 //the memory addresses above
cout …
Run Code Online (Sandbox Code Playgroud)

c c++ arrays string pointers

11
推荐指数
2
解决办法
8538
查看次数

标签 统计

c ×5

arrays ×4

pointers ×3

c++ ×2

gcc ×1

memory-management ×1

string ×1