char+str+abc
答:楼上pc_ace太搞笑了...p是str的首地址.往后面数3个当然是字符串结尾,也就是'\0'...(p+3)改为*(p+2),输出自然应该是'C'的ascii码,自然是67 int s[2][3]={1,2,3,4,5,6}, (*p)[3]; p=s;则p+1是s[1]那个数组
答:输出 67 指针p指向str[0],即存储字符'A'的内存,所以p+2指向'C',输出格式为%d,所以以十进制输出'C'的ASCII码67
答:char 是字符,比如char ccc,此时cccc表示一个字符,我们可以用%c的格式化打印出来。另外,给字符赋值一般这样:ccc = 'd';这句的意思是把d这个字符赋值给ccc。char 还可以声明字符数组,即我们所说的字符串。比如char str_1[100];这表示在栈区申请了可自动回收的100字节的空间,用来存放100个字符。
答:cout<<(str1==str2)<<endl;这一句就是输出一行数字。因为str1与str2是分别指向两个不同的字符串首地址的字符指针,所以它们的值不相等。程序段运行后,就会输出0(即“假”)。
答:str1和str2是数组名,他们都是指针ni他们包含的内容相同但地址不同,故bool表达式str1==str2为假。所以是0,至于最后两个为什么是1呢?因为str3和str4,5 ,6是指针,它们都指向同一个常量“abc”,abc只有一个地址也就是说它们的值是一样的,所以它们是相等的 其他都是这个原理就是考察你地址...
答:分析char str[]="abc\0def\0ghi",*p=str;这一句要拆开来看,它与下面的代码行等效:char str[]="abc\0def\0ghi";char *p;p=str;第一行:char str[]="abc\0def\0ghi"的意思是声明一个名为str的char型数组,并用字符串abc\0def\0ghi初始化(就是由编译器把这个字符串的字符一个接一...
答:char str[] = "abc\000def\n"\000是字符串结束符,字符串str的长度就是结束符之前的字符个数,也就是说长度len为3。
答:选择B。字符串str实际上后面加了一个'\0',而*(p+3)即将第字符串第四个字符的ascii打印出来,这个字符是'\0'.它的ascii码为0
答:char str[]="abc\0def\0gji",*p=str; //这里p指向了str的首地址,即a所在的位置 p+0 指向a p+1 指向b p+2 指向c \0 整体是一个字符,(下同。看书中的转义字符说明) p+3 p+4 指向d p+5 指向e printf("%s",p+5); //printf在输出字符串时,遇到'\0'则停止...
答:同意楼上的解释!!!"abc\0def"是字符常量,\0是字符串的结束标志,系统默认\0前面才是字符串的部分,str是数组名,[]是数组的元素,即字符的个数;printf("%s",str)是字符的输出,%s是表示把整个字符串输出,即输出abc
网友评论:
艾符19615631740:
初学C指针 -
66789孟滕
: 1. char *str = "abc" 的意思就是 str[3]="abc";至于"%s,a=%d,b=%d\n",在printf中用做格式化输出.即是:printf("%s,a=%d,b=%d\n", ,"a+=b",a,b)%s..当然是"a+=b"了, %d..a的值11,b的值102.main的参数:int argc,char *argv[] ,...
艾符19615631740:
char str;str="abc";这样定义为什么不行 -
66789孟滕
: char 是单字节类型,只能存储单字符. "abc"这是一个字符串,所以不能用char来存储. 可以这样写: char str[4]; str="abc";
艾符19615631740:
char *str = "abc"; str[0] = ""; str就变成空字符串? -
66789孟滕
: char *str = "abc"; //str是字符串指针,单元中存放"abc"首地址.str[0]...
艾符19615631740:
c语言 什么意思 看不懂 char str[]="abc\0def\0ghi",*p=str; -
66789孟滕
: 分析char str[]="abc\0def\0ghi",*p=str;这一句要拆开来看,它与下面的代码行等效: char str[]="abc\0def\0ghi"; char *p; p=str; 第一行:char str[]="abc\0def\0ghi"的意思是声明一个名为str的char型数组,并用字符串abc\0def\0ghi初始化(...
艾符19615631740:
char str[]="abc"与char str[]={'a''b''c'}的大小 -
66789孟滕
: 先纠正一个错误,char str[3]={'a', 'b', 'c'};/*用逗号隔开*/.char str[]="abc"; 这个str占用4字节,这是因为C字符串,编译器会自动加一个'\0'."abc"在内存中实际上是"abc\0",所以为四字节. char str[3]={'a', 'b', 'c'}; 这个容易理解,你定义时候已经定义为char [3],所以占3字节.
艾符19615631740:
今天遇到这样一种写法(C语言):char * str="abc""def"; 这样也能给字符串赋值,语法好奇怪,你们见过吗; -
66789孟滕
: 对的,两个被双引号括起来的字符串,只要当中是空格(包括换行),C就认为这是一个字符串.在《C PRIMER PLUS》第四章的 Exploring and Exploiting printf() and scanf()小节中有如下引文:new with ANSI C, is string concatenation. If you follow one quoted string constant with another, separated only by whitespace, C treats the combination as a single string
艾符19615631740:
c++中char *str与char str[] -
66789孟滕
: #include <stdio.h> #include <string.h>int main() { char *str_1="abc"; char str_2[]="abc";str_1 +=1; // str_2 +=1; 不一样, 因为pointer已为const, 不允许改便system("pause"); return 0; }
艾符19615631740:
char str[]="abc\0def";printf("%s",str)……求详解 -
66789孟滕
: 输出abc. %s表示输出的是字符串,字符串以\0为结束标志,str[]中abc之后就有\0,所以,输到abc截止
艾符19615631740:
.下面程序段的运行结果是 .(1级) char str[ ]=“ABC”,*p=str; printf(“%s\n”,*(p+1)); A) 66 B) BC -
66789孟滕
: 这道题有问题的,*(p+1)是取值,即取得字符'B'的值66,printf(“%s\n”,*(p+1))或将引起程序崩溃! 如果是如下的代码: char str[ ]=“ABC”,*p=str; printf(“%s\n”,(p+1)); 答案才是B!
艾符19615631740:
char str[]="ABCD",*p=str; printf("%d\n",*(p+4)); -
66789孟滕
: 这个其实不难,最主要的是要理解指针,*(p+4),p代表str内存中的第一个位置,也就是说,原本*p的值是A,*(p+1)是B,*(p+2)是C,*(p+3)D,所以*(p+4)已经超出了str的内存,他指向一块空的内存,所以打印出来的结果就为0了!