Discuz! Board

 找回密码
 立即注册
查看: 73|回复: 3

20240518

[复制链接]

574

主题

758

帖子

243万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2435189

烈空座 Lv:100
发表于 2024-5-18 17:37:34 | 显示全部楼层 |阅读模式
[C++] 纯文本查看 复制代码
#include <bits/stdc++.h>
using namespace std;

//每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,
//它表示了在内存中的一个地址。请看下面的实例,它将输出定义的变量地址:

void zhizhen_test1()
{
   int  var1;
   char var2[10];
 
   cout << "var1 变量的地址: ";
   cout << &var1 << endl;
 
   cout << "var2 变量的地址: ";
   cout << &var2 << endl;
 
}

//什么是指针?
//指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。
//就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明。
//指针变量声明的一般形式为:

void zhizhen_test2()
{
	int    *ip1;    /* 一个整型的指针 */
	double *dp;    /* 一个 double 型的指针 */
	float  *fp;    /* 一个浮点型的指针 */
	char   *ch;    /* 一个字符型的指针 */	
	
   int  var = 20;   // 实际变量的声明
   int  *ip;        // 指针变量的声明
 
   ip = &var;       // 在指针变量中存储 var 的地址
 
   cout << "Value of var variable: ";
   cout << var << endl;
 
   // 输出在指针变量中存储的地址
   cout << "Address stored in ip variable: ";
   cout << ip << endl;
 
   // 访问指针中地址的值
   cout << "Value of *ip variable: ";
   cout << *ip << endl;
 
}
//
//在变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个 NULL 值是一个良好的编程习惯。
//赋为 NULL 值的指针被称为空指针。

int zhizhen_test3()
{
   int  *ptr = NULL;

   cout << "ptr 的值是 " << ptr ;
   //输出 0 
 
   return 0;
}

//指针的算术运算

int zhizhen_test4 ()
{
   int  var[3] = {10, 100, 200};
   int  *ptr;
 
   // 指针中的数组地址
   ptr = var;
   for (int i = 0; i < 3; i++)
   {
      cout << "Address of var[" << i << "] = ";
      cout << ptr << endl;
 
      cout << "Value of var[" << i << "] = ";
      cout << *ptr << endl;
 
      // 移动到下一个位置
      ptr++;//加法运算:可以对指针进行加法运算,此处实际增加一个int位,4byte 
      ptr--;//减法运算:可以对指针进行减法运算 
   }
   
    while ( ptr <= &var[2] )//指针与指针之间的比较 
   {
      cout << ptr << endl;
      cout << *ptr << endl;
 
      // 指向上一个位置
      ptr++;
   }
   
   return 0;
}

//指针数组
int zhizhen_test5 ()
{
   int  var[3] = {10, 100, 200};
   int *ptr[3];
 
   for (int i = 0; i < 3; i++)
   {
      ptr[i] = &var[i]; // 赋值为整数的地址
   }
   for (int i = 0; i < 3; i++)
   {
      cout << "Value of var[" << i << "] = ";
      cout << *ptr[i] << endl; 
   }
   return 0;
} 

// 指向指针的指针(多级间接寻址)
//指向指针的指针是一种多级间接寻址的形式,或者说是一个指针链。
//指针的指针就是将指针的地址存放在另一个指针里面。 

int zhizhen_test6 ()
{
    int  var;
    int  *ptr;
    int  **pptr;
 
    var = 3000;
 
    // 获取 var 的地址
    ptr = &var;
 
    // 使用运算符 & 获取 ptr 的地址
    pptr = &ptr;
 
    // 使用 pptr 获取值
    cout << "var 值为 :" << var << endl;
    cout << "*ptr 值为:" << *ptr << endl;
    cout << "**pptr 值为:" << **pptr << endl;
 
    return 0;
}

//结构体指针 
//作用:通过指针访问结构体中的成员
//利用操作符 -> 可以通过结构体指针访问结构体的属性
struct students
{
	string name;
	int age;
	int scores;
};
 
 
int zhizhen_test7()
{
	//1、创建学生结构体变量
	struct students s1;
	s1.name = "张三";
	s1.age = 18;
	s1.scores = 100;
 
	//2、通过指针指向结构体变量
	struct students* p = &s1;
 
	//3、通过指针访问结构体变量中的数据
	cout << "姓名:" << p->name << " ";
	cout << "年龄:" << p->age << " ";
	cout << "分数:" << p->scores << " " << endl;
 
 
	system("pause");
	return 0;
}

回复

使用道具 举报

2

主题

8

帖子

36

积分

新手上路

Rank: 1

积分
36
发表于 2024-6-7 21:04:07 | 显示全部楼层
[C++] 纯文本查看 复制代码
#include <bits/stdc++.h>
using namespace std;
int main() {
	int a,b,c,x=0;int s;
	printf("请输入数字:");
	scanf("%d",&x);
	if(x<=100||x>=999)
	printf("false");
	a=x%10;
	b=x/10%10;
	c=x/100;
s=a*100+b*10+c;
    
    
 return s;
}
回复

使用道具 举报

574

主题

758

帖子

243万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2435189

烈空座 Lv:100
 楼主| 发表于 2024-6-7 21:37:05 | 显示全部楼层
[C] 纯文本查看 复制代码
#include <bits/stdc++.h>
using namespace std;
int main() {
    int a,b,c,x=0;int s;
    printf("请输入数字:");
    scanf("%d",&x);
    if(x<=100||x>=999)//100和999不能排除
    printf("false");
    a=x%10;
    b=x/10%10;
    c=x/100;
s=a*100+b*10+c;
     
     
 return s;//要求输出,光返回可不行
}
回复

使用道具 举报

2

主题

8

帖子

36

积分

新手上路

Rank: 1

积分
36
发表于 2024-6-13 17:03:23 | 显示全部楼层
[C++] 纯文本查看 复制代码
#include <bits/stdc++.h>
using namespace std;
void fun2(float a,float b,float c)
{
	if(a==0) cout<<-c/b;
	else
	{
		float t=pow(b,2)-4*a*c;
		if(t>0) cout<<(-b+sqrt(t))/2*a<<''<<(-b-sqrt(t))/2*a;
		else if(t==0) cout<<-b/2*a;
		else cout<<"没有根"; 
	}
}
int main()
{
	fun2(1,-3,2);
	return 0;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-2-13 01:51 , Processed in 0.054905 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表