c语言-关于C语言 指针数组的小问题

问题描述

关于C语言 指针数组的小问题

指针数组赋值(字符串)后,可以单独引用某一个字符串中的第X个字符(单个字符)吗?输出必须用%s 不能用%c ??

解决方案

楼主是要这种吗?

 char *str[3] = {"skjf", "sd", "askjfssf"};
    printf("%cn", str[0][3]); //打印出f
    printf("%cn", *(str[2] + 3));//打印出j

解决方案二:

如果在编译器中定义了一个字符串常量"abc",那么这个字符串常量表示的是一个地址,也就是你可以使用"abc"[2]这样的方式来访问这个字符串(
2["abc"]的效果是一样,都是访问第3个字符)。
按照楼主的说法定义一个数组,那么数组中的每个元素都是一个字符串的首地址,可以使用我说的方法访问这个字符串的每个字符。
需要注意的是,这和c语言的二维数组的概念是不一样的,因为数组里面放的是每个字符串的首地址,并非真正的字符串。也就是说字符串的内存并没有包括在这个数组里面。值得一提的是,数组中每个元素的长度都是32bit(因为是指针)。

时间: 2024-10-29 07:46:54

c语言-关于C语言 指针数组的小问题的相关文章

c语言结构体中指针数组怎样赋值

问题描述 c语言结构体中指针数组怎样赋值 定义一个结构体struct AS{ char *p[1]:}:怎样用gets函数给指针数组赋值呢? 解决方案 看Unix/Linux上的man: Standard C Library Functions gets(3C)NAME gets fgets - get a string from a stream SYNOPSIS #include char *gets(char *s); char *fgets(char *s int n FILE *str

字符串-[c语言]关于 scanf() 和 char数组 的小实验的问题

问题描述 [c语言]关于 scanf() 和 char数组 的小实验的问题 写了三个小的几乎一样的test代码,但是输出却不同,不明白为什么,求大神指点.全部代码如下:#include void sub1(void); int main(){ /*test1*/ sub1(); /*test2 */char w0[2]={'a''a'}; char * pc0 = w0; printf("" w1 = %s""w0); /*wrong*/printf("&

c语言关于程序以及指针的一点小问题

问题描述 c语言关于程序以及指针的一点小问题 请问以下这个程序的输出是多少? 还有我尝试着用编译器跑这个程序,但一直都是卡了很久之后,运行失败,这是为什么??? #include int main( void ) { int *p, *q; int x, y; x = 7; y = 8; q = &x; *q = 10; p = q; y = *p + *q; *p = x + y; printf("x = %d, y = %d ", x, y ); return 0; } 解

c语言-关于字符型指针数组的理解问题

问题描述 关于字符型指针数组的理解问题 #include<stdio.h> main() { char *name[]={"zhang","gou","xu","zheng","mao","zhao","li","bai","qing"}; printf("%s ",*name[1]); } 此时

C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com

原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表本文由 arthinking 发表于315 天前 ⁄ itzhai.com原创文章 ⁄ C语言 ⁄ 评论数 3 ⁄ 被围观 1,775 views+   指针数组: 在一个数组中,如果它的元素全部都是指针

struct-关于C语言结构体指针数组的问题

问题描述 关于C语言结构体指针数组的问题 //结构体struct student{ int iNum; char cName[16]; float fChineseScore; float fMathScore; float fEnglishScore;};typedef struct student STUDENT;//输入void InputTranscript(STUDENT MyClass[] int num){ int i; printf(""请输入学生的成绩信息:n&quo

c语言指针数组 字符串-C语言指针数组查找问题

问题描述 C语言指针数组查找问题 #include#includevoid main(){ void input(char name[]int n); void sort(char *name[]int n); void print(char *name[]int n); void search(char *name[]int n); char *name[4]; int n=4; input(namen); sort(namen); print(namen); search(namen);}v

二维数组-关于C语言的指针数组的问题

问题描述 关于C语言的指针数组的问题 老师说过 传递一个二维数组时 必须指定 第二维的 个数 才能正确索引 数组1维+1的位置 函数参数传递 都是写成这样 abc(int* array[10]) 但是看到main函数的 参数确是 int main(int argc, char* argv[], char* env[]) 这样写 能索引argv+1 的位置吗? 解决方案 当然可以,C语言是一种简陋和原始的语言,它简陋的程度对于用惯了高级编程语言的人来说匪夷所思,比如你完全可以越界访问数组,至于结果

c语言-结构体指针数组指向结构体类型数组的问题

问题描述 结构体指针数组指向结构体类型数组的问题 #include<stdio.h> #include<stdlib.h> struct student { char num; char name[10]; int grade; }; void swap(struct student *p[],int n) { int k,m,i,j; struct student *d; k=0;m=n-1; while(k<m) { j=m-1;m=0; for(i=k;i<=j;