c语言-C语言关于字符指针变量和字符数组的说法

问题描述

C语言关于字符指针变量和字符数组的说法

下列关于字符指针变量和字符数组的说法错误的是
A)字符指针变量的值可以变化
B)字符数组的值可以变化
C)字符指针变量代表了一个地址
D)字符数组代表了一个地址
====答案选B,求解释?

解决方案

选择B。字符数组相当于指针常量。

解决方案二:

数组定义时系统给开辟内存单元,数组名相当于数组的开始地址是不能变化的

解决方案三:

C语言字符指针和字符数组
C语言中,为什么字符串可以赋值给字符指针变量
字符数组和字符指针

时间: 2024-11-17 10:31:14

c语言-C语言关于字符指针变量和字符数组的说法的相关文章

C/C++(字符串处理)字符指针、字符数组用法大总结

字符指针变量和字符数组都可以处理字符.字符串,但是两者却有着本质的区别.今天用到就把所有的总结一下,以供大家参考! 1.字符数组初始化及赋值 char c_a[] = {"songjinshi"};//正确 char c_a[] = {'s','o'};//正确 char c_a[] = "songjinshi";//正确 char c_a[11]; c_a = "songjinshi";//错误,c_a是一个指针常量不能直接赋值 c_a++;/

c语言先用scanf初始化了一个字符指针,之后再定义字符数组出现内存不可读,在线等,急求

问题描述 c语言先用scanf初始化了一个字符指针,之后再定义字符数组出现内存不可读,在线等,急求 #include #include int main() { char*s; scanf("%s",s); //printf("%sn",s); //int n = strlen(s); //printf("%dn",n); char ret[56]; return 0; } 解决方案 s只是指针变量,没有分配内存 char*s; s = mall

深入解读C++中的指针变量_C 语言

指针变量是一种特殊的变量,它和以前学过的其他类型的变量的不同之处是:用它来指向另一个变量.为了表示指针变量和它所指向的变量之间的联系,在C++中用"*"符号表示指向,例如,i_pointer是一个指针变量,而*i_pointer表示i_pointer所指向的变量. 下面两个语句作用相同: i=3; *i_pointer=3; 定义指针变量 C++规定所有变量在使用前必须先定义,即指定其类型.在编译时按变量类型分配存储空间.对指针变量必须将它定义为指针类型.先看一个具体例子: int i

c语言-求问一个C语言字符指针的问题

问题描述 求问一个C语言字符指针的问题 #include void Initialize (char * a, char * b) { a[0] = 'T'; a[1] = 'h'; a[2] = 'i'; a[3] = 's'; a[4] = ' '; a[5] = 'i'; a[6] = 's'; a[7] = ' '; a[8] = 'A'; a[9] = ''; b = a; b[8] = 'B'; } #define ARRAY_SIZE 10 char a[ARRAY_SIZE];

malloc-C语言中的字符指针操作问题,如何释放字符指针空间?

问题描述 C语言中的字符指针操作问题,如何释放字符指针空间? 源码如下: #include #include #include void main() { char s1; char *s2 = "bbb"; char *s3 = "ccc"; s1 = (char)malloc(sizeof(s2)); strcpy(s1, s2); strcat(s1, s3); //free(s2); //free(s3); printf("%s ", s

malloc-C语言字符指针问题求解答

问题描述 C语言字符指针问题求解答 main(){ char * a; a=(char * )malloc(40); scanf(""%s""* a );}上面代码中的scanf(""%s""* a);这行为什么是合法的?请赐教!不好意思第一次代码输错了-_- 解决方案 创建了一个40个字符长度的缓冲区,然后输入字符到这个缓冲区中.你测试下就知道了. 解决方案二: a=(char)malloc(40); 看不懂这要干嘛,怎么不

c语言 计算机二级 字符指针

问题描述 c语言 计算机二级 字符指针 我认为该选c,但标准答案给的a 求解啊 解决方案 #include <stdio.h> int main() { char a[] = "china", *p; p = a; printf("%c %c ", *p, a[0]); //c c 两值相等 C也是对的 printf("%p %p ", p, a);//0x7fffcdfc9220 0x7fffcdfc9220 我觉得A不是对的,虽然

C 语言指针变量的运算详解_C 语言

指针变量保存的是地址,本质上是一个整数,可以进行部分运算,例如加法.减法.比较等,请看下面的代码: #include <stdio.h> int main(){ int a = 10, *pa = &a, *paa = &a; double b = 99.9, *pb = &b; char c = '@', *pc = &c; //最初的值 printf("&a=%#X, pa=%#X, pb=%#X, pc=%#X\n", &

c语言-关于字符指针数组,如何赋值?

问题描述 关于字符指针数组,如何赋值? int main() { char *a[2]={"abc","bcd"} scanf{ }; printf{ }; return 0; } 请问在scanf中输入什么代码赋值,替换"abc"abc 解决方案 指针常量不行.你得这么写 char * p= new char[100]; scanf("%s", p); 解决方案二: 字符指针数组字符数组与字符指针字符型指针数组变量定义与赋值