int,char指针探究

#include<iostream>
using namespace std;
int main()
{

/*
思路:
1、关于int指针,不可以直接往指针里传值
例:int *a = 400;
2、int* a;
int b = 4;
a = &b;
这是可以的,b将自己的地址写入到a里,然后*a指向b里的值,所以*a = 4;
3、关于字符串指针
字符串指针则可以直接进行 char* t = "chaars";
打印*b,默认输出c,字符串第一个字符
若&b,则会打印出这个字符以后的所有字符
4、字符串的每一个字符都是一个地址,一个地址存一个字符
*/
char* t = "chaars";
int b = 4;
int* a;
a = &b;
cout << t <<endl; //chaars
cout << &t << endl; //003AFCF0
cout << *t << endl; //c
cout << t[1] << endl; //h
cout << &t[2] << endl; //aars
cout << a << endl; //003AFCE4
cout << &a << endl; //003AFCD8
cout << *a << endl; //4
system("pause");
return 0;

}

原文地址:https://www.cnblogs.com/zhuifeng-mayi/p/10640904.html

时间: 2024-11-02 12:39:53

int,char指针探究的相关文章

C语言:int型指针与char型指针本质

---恢复内容开始--- 我的理解是,不管定义时将指针定义成何种类型,指针本质上都是一个数字,其位数由编译器来决定. 比如我的编译器是32位,那么无论是定义一个char *pc还是定义一个int *pi,本质上pc与pi都是一个32位的数,但是由于"char *" 和 "int *"的限制,所以pc++是自加8bit,而pi++是自加16bit. 1 // int指针与char指针.cpp : 2 // 看看“char型指针”与“int型指针”本质上有什么区别 3

char *指针的详细解释

前段时间写了一篇char*和char[]的区别,今天对char*做个更深的理解 1:char指针和其他指针一样,也是定义了一块地址,如int*定义了一块栈,4个字节,char*呢,现在写一段代码 #include<iostream> using namespace std; int main() { int a=12; char b='67'; int *c=&a; char *d=&b; return 0; } 内存分布情况: 我们可以看到,在这种情况下char*表示的意思是

int *(*a[5])(int, char*)

int* 表示是一个int型指针;(*a[5])(int, char*)中的a[5]表示是一个有5个元素的数组,而(*)(int, char*)则表示指向一个函数的指针,该函数有两个参数,第一个参数为int型,第二个是字符指针型,结合前面部分,表示这个函数的返回类型为int型,所以(*a[5])(int, char*)为5个返回类型为int型函数组成的数组:整个结合起来int* (*a[5])(int, char*)就是指向5个返回类型为int型函数组成的数组的指针变量,变量名为a.本质是指向数

char数组与char指针

1.以字符串形式出现的,编译器会在结尾自动添加\0,思考,为什么? 存在的C语言方法,如strlen(s),计算字符串的长度,其中s指针.strlen要计算字符串长度,必须知道哪里是结尾,因此使用\0表示结尾.只有字符数组才有\0的概念,其它类型(int)的数组没有这个概念.因为其他类型的数组或者指针,没有strlen这种方法. 那么问题来了,int数组如何计算长度呢?如int a1 = {3,7,9,}; 使用sizeof(a1)/sizeof(int). 2.数组可以在栈上分配,也可以在堆上

在C语言中,double long unsigned int char 类型数据所占字节数

在C语言中,double  long  unsigned  int  char  类型数据所占字节数和机器字长及编译器有关系:所以,int,long int,short int的宽度都可能随编译器而异.但有下面几条原则(ANSI/ISO制订的): 1 sizeof(short int)<=sizeof(int) 2 sizeof(int)<=sizeof(long int) 3 short int至少应为16位(2字节) 4 long int至少应为32位. unsigned 是无符号的意思.

char[]数组与char *指针的区别

char[]数组与char *指针的区别 问题描述 虽然很久之前有看过关于char指针和char数组的区别,但是当时没有系统的整理,到现在频繁遇到,在string,char[], char *中迷失了.由于string涉及的内容很多,因此本文中就先不整理了,对char[]和 char *进行了一个整理,原理可能还是不太明白,但至少印象深刻了很多. 整型数组和整型指针 在讨论字符数组.字符指针以及字符串之前,先看下整型数组与整型指针的区别 int a[]={1,2,3};//整型数组,a的指向不能

char 指针如何判断字符串需要输出长度

先上代码: 1 #include <stdio.h> 2 #include <string.h> 3 4 5 const char g_ip[32] = "123456789"; 6 int func1(const char *ip) 7 { 8 printf("ip:%s\n",ip); 9 printf("ip size:%d\n",sizeof(ip)); 10 if(*ip == '\0') 11 printf(&

C: 当字符数组首指针转化成char *指针,sizeof(*ptr)不为array的size

#include <stdio.h> #include <string.h> int main() { char a[10] = "\0"; char *pa = (char *)&a; char (*paa)[10] = &a; printf("-----a[10]----\n"); printf("a size:%d, pa size;%d, *pa size:%d, *paa size:%d\n",

C++中将对象this转换成unsigned char指针

示例程序 // ---CodeBlob.h--- #ifndef CODEBLOB_H_ #define CODEBLOB_H_ class CodeBlob { private: const char* _name; int _size; public: CodeBlob(); void printName(); void printSize(); void setSize(int size); virtual ~CodeBlob(); }; #endif /* CODEBLOB_H_ */