对于定义+char+str
答:char str[] = "abc\000def\n"\000是字符串结束符,字符串str的长度就是结束符之前的字符个数,也就是说长度len为3。
答:对于char str[]和const char str[],它们是字符串数组,为字符串内容分配的内存根据数组变量的作用域(在哪里定义的)有所不同,如果在函数内部定义(也就是局部变量),存放在栈中,如果在全局定义,放在静态数据区中。对于char *str和const char *str,它们是字符串指针,对于指针变量本身也是根据作...
答:char str[10]; 是数组,初始化需要用花括号。char str[10]=0; 不对。 初始化需要用花括号。char str[10]='\0'; 不对。 给了字符常量。 初始化需要用花括号 char str[10]=NULL; 不对。初始化需要用花括号。char str[10]={0}; 对,初始化用了花括号。char str[10]="\0"; ...
答:char str[ ]="I love China";(2)用字符指针指向一个字符串 char* str="I love China";对于第二种表示方法,有人认为str是一个字符串变量,以为定义时把字符串常量"I love China"直接赋给该字符串变量,这是不对的。C语言对字符串常量是按字符数组处理的,在内存中开辟了一个字符数组用来存放...
答:s代表你定义了一个结构体变量。它里面包含了一个int型变量,一个字符型变量。就是你struct 里面定义的东西。p 定义了一个结构体指针,它指向了结构体变量 s。p->str 指针p指向了 s结构体里的 char型元素 str 。只要你记住 s是结构体型变量。里面的东西就是你struct定义的结构体有多少元素,它就...
答:char str[10]=“china\n\0";给定了初始化表达式,且初始化列表中字符小于定义的char数组的元素个数10,所以之后的部分被隐式初始化为0,str的内存布局为:{'c','h','i','n','a','\n','\0',0,0,0}。事实上作为char而言字符串结束符'\0'和0是同一个字符(char的每个位为0),str...
答:char str[5] = {'a', 'b', 'c', 'd', 'e'};这是定义了一个字符数组,不是字符串,导致这个数组不会自动以'\0'结束,printf中的%c表明后面格式化的是一个字符,所以运行正常 而对于最后一个printf("%c", &str[1]),str[1]是字符数组中的第一个元素,&str[1]是第一个元素的地址...
答:初始化:char数组在定义时可以直接使用字符串字面量来初始化,例如:char str[] = "hello"; 而char *指针则需要明确地分配内存并将字符串复制到该内存中,例如:char str = (char)malloc(6); strcpy(str, "hello");操作方法:对于char数组,可以使用数组下标来访问每个元素;而对于char 指针,...
答:C语言string和char在字符类型、字符串类型等方面有区别。1、字符类型 char是字符类型,string是字符串类型。string可以看作是char组成的列表,在有些编程语言里没有char,只有string,例如python。如果单用引号来定义是字符类型还是字符串类型就会过于草率,因为不同的编程语言对引号的规定也不同。所以二者最...
答:这个输出语句也存在问题,&str 应改为str,这的值是字符串地址的头指针,而不是str这个变量所在的地址。&str str这个变量在内存中的地址。str 的值是字符串地址的头指针 代码可修改如下 include "stdafx.h"int main(int argc, char* argv[]){ char str[50];scanf("%s",str);printf("输出...
网友评论:
彭曲15146953617:
关于定义字符串 -
54357壤庭
: char str定义的话,str是char型,即字符型,只能存储一个字符,比如 char str = 'a'.如果存字符串,必须用字符数组或者字符指针的形式,如:char *str = "kx43" 或者 char str[] = "kx43".所以char str[] = "\0"是正确的,char str = '\0'也可以正确."\0"和'\0'也是有区别的.
彭曲15146953617:
C语言中,已知字符数组str的定义char str[]=”ABCDEFGHIJ” -
54357壤庭
: %.2s指定输出该字符串的2个字符.因为我们知道,str数组指定的输出起始位置就是数组的首地址,即是str[0],那么str+5指定的就是字符的起始地址为str[5],最终就输出str[5]和str[6]两个字符.即是:FG
彭曲15146953617:
若有定义char str[]=”C - Program -
54357壤庭
: 1234567891011 #include <stdio.h>#include<string.h> intmain() { charstr[]="C-Program\n"; printf("%d\n",sizeof(str)); return0; }/*11*/
彭曲15146953617:
char **str和char *str[]有什么区别? -
54357壤庭
: **str右边的*表示指向每一个字符串第一个字符的地址,左边的*表示指向第一个字符串的地址.const char **str 或 char const **str可以定义,const不区分前后顺序,意义都是表示str是常量(不能赋值).只能定义char *str[5]而不能定义char *str[],因为编译时程序不能确定str数组有几维.char *str[5]表示字符串数组,数组数量是5,既是5个string又是一个string array,每个string不限字符个数.
彭曲15146953617:
定义char*str=“computer”;是将字符串“computer”赋值给str吗?为什么?
54357壤庭
: 不是,赋值给str的,是computer这串字符串在内存中的首地址. 因为str是char *,带个*号,就表示它是指针,指针中存放的是地址,不是值.
彭曲15146953617:
c语言题目 已有定义char str[10] -
54357壤庭
: %s的分隔是空白符,即空格回车等 所以在遇到空格时,就停止读了,所以最后str中只有单词how,最后输出how
彭曲15146953617:
c++中char与str的区别 -
54357壤庭
: char *str[100]是指针数组,代表指向100个内存空间的指针,只能存放地址.程序员不知道这块内存在哪里,但是编译器知道. char str[100]是字符数组,代表100个可存放值的内存空间.
彭曲15146953617:
char str[];这个定义数组的语句对不对,是不对,但为什么啊 -
54357壤庭
: 如果要定义数组,就必须指定数组大小.char str[10]或者char str[] = "Hello World"都可以.
彭曲15146953617:
C语言,定义 char str[]={"microsoft"}; 输出 printf("%c",s -
54357壤庭
: 哪有char str[]={"microsoft"}; 这么写的...要么str[] = {'m','i',.....}; 要么str[] = "microsoft";
彭曲15146953617:
定义char *str=“hello” 为何str[2]='L'可以 *(str+2)='L'不行 -
54357壤庭
: char *str="hello"这种定义是字符串常量,被定义在只读数据段里,只能读,不可修改或赋值,否则会出错...以上两种都不行.